﻿//-------------------------------------------------------------------
//	Copyright (c) 2010-2014  Zhirnov Andrey
//	This file is part of the "UX Standard Lib" project.
//	See copyright notice in "UX_STL_Ext.h".
//-------------------------------------------------------------------

#ifndef _UXS_AL_COMMON_H
#define _UXS_AL_COMMON_H

#pragma once

#include "ALEnums.h"
#include "../../OS/Base/OSTypes.h"

namespace UX_STL
{
namespace ALShell
{

	class ALSoundFilter;
	class ALSoundEffect;
	class ALSoundEffectSlot;
	class ALSoundBuffer;
	class ALSound;
	//class ALSoundSystem;

	
#ifdef UX_AL_BASEOBJECT_OVERRIDE
	UX_AL_BASEOBJECT_OVERRIDE
#else
# ifndef UX_AL_BASEOBJECT_DEFINED
	

	//
	// Base Object
	//

	class UX_EXPORT ALBaseObject : protected CReferenced
	{
	private:
		ALBaseObject(const ALBaseObject &) {}
		void operator = (const ALBaseObject &) {}
		
		void _Release()		{ delete this; }

	public:
		ALBaseObject() {}
		virtual ~ALBaseObject() {}
	};

# endif	// UX_AL_BASEOBJECT_DEFINED
#endif	// UX_AL_BASEOBJECT_OVERRIDE


//-------------------------------------------------------------------

}	// ALShell
}	// UX_STL

#endif	// _UXS_AL_COMMON_H